`timescale 1ns / 1ps

module adder_bcd( 
input [3:0] a,//输入加数 a 
input [3:0] b, //输入加数 b 
input rst_n, //系统复位，低电平有效 
output [3:0] bcd1, //输入个位 
output [3:0] bcd2//输入十位 
); 


// 16,8,4,2,1
wire [4:0] sum;
assign sum = a+b;
wire [3:0] shiwei;
wire [3:0] gewei;

assign shiwei = sum / 10;
assign gewei = sum % 10;

reg[3:0] bcd1_reg;
reg[3:0] bcd2_reg;
assign bcd1 = bcd1_reg;
assign bcd2 = bcd2_reg;

// 在always块中处理复位和赋值
    always @(*) begin
        if (!rst_n) begin
            bcd1_reg <= 4'b0000;  // 复位时，bcd1和bcd2都清零
            bcd2_reg <= 4'b0000;
        end else begin
            // 计算 bcd1 和 bcd2
            bcd1_reg <= shiwei[0] * 1 + shiwei[1] * 2 + shiwei[2] * 4 + shiwei[3] * 8;
            bcd2_reg <= gewei[0] * 1 + gewei[1] * 2 + gewei[2] * 4 + gewei[3] * 8;
        end
    end

endmodule
